package Algorithm.MoveZero;

/**
 * 时间复杂度O（n）
 * 空间复杂度O（1）
 */
public class MoveZero2 {

    public void moveZeroes(int[] nums) {

        int k = 0;  //nums中，[0,k）的元素均为非零元素

        //遍历到第i个元素后，保证[0...i）中所有非0元素
        //都按照顺序排列在[0,k)中
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] != 0) {
                nums[k] = nums[i];
                k++;
            }
        }
        for (int i = k; i < nums.length; i++) {
            nums[i] = 0;
        }
    }
}
